
    // highp -2^16 - 2^16
    // mediump -2^10 - 2^10
    // lowp -2^8 - 2^8
    
    precision lowp float; // 数据精度（highp高 、 mediump 中  lowp 低） 声明 （必须写在这个位置）
    
    
    // attribute 声明变量  vec3 三维向量 position 顶点坐标
    // attribute 声明变量  vec2 2维向量 uv 顶点坐标
    attribute vec3 position;
    attribute vec2 uv;
    // uniform 声明变量  mat4 4×4浮点矩阵
    uniform mat4 modelMatrix;  // 模型矩阵
    uniform mat4 viewMatrix;  //视图矩阵
    uniform mat4 projectionMatrix;  // 投影矩阵
    uniform float uTime;
    // varying vec2 vUv 传递数据给片元着色器 把vUv 传递过去
    varying vec2 vUv;
    


    varying float vElevation;
    void main(){
        vUv = uv ; //赋值
        vec4 modelPosition = modelMatrix * vec4( position, 1.0 ) ; // 定义变量
        // modelPosition.x += 1.0 ; // x 轴移动 （注意数据是浮点数）
        // modelPosition.z += 1.0 ; // x 轴移动 （注意数据是浮点数）


        modelPosition.z = sin( modelPosition.x+uTime * 10.0) * 0.05; // 按照顶点位置变形
         modelPosition.z += sin( modelPosition.y+uTime * 10.0) * 0.05; // 按照顶点位置变形

        vElevation =  modelPosition.z; // 获取 高度，准备传递过去
        gl_Position = projectionMatrix * viewMatrix * modelPosition ;
    }